Welcome to GeeKee CeeBee's Page: House of Mechatronics & Controls Engineering Projects
# By GeeKee CeeBee https://www.youtube.com/watch?v=joHX2vJiEQI&feature=youtu.be # Solve Differential Using Finite Difference Method in Discrete Time # This example looks at Spring Mass Damper System # Import libraries import numpy import matplotlib.pyplot as plt K = 1000 # Spring Constant M = 10 # Mass C = 200 # Damping Constant dt= 0.001 # Define Time Step t = numpy.arange(0, 5, dt) # Define Time range y = numpy.ones(len(t)) # Unit Step function y[0:1000] = 0 y[1000:5000] = 0.1 x = numpy.zeros(len(t)) x[0]=0 # Initial Condition x[1]=0 A1 = (C / dt) + (M / dt ** 2) + K A2 = (-2 * M / dt ** 2) - (C / dt) A3 = (M / dt ** 2) A4 = (C / dt) + K A5 = (-C / dt) for k in range(2, len(t)): x[k] = (1 / A1) * (A4 * y[k] + A5 * y[k - 1] - A2 * x[k - 1] - A3 * x[k - 2]) t = dt * numpy.arange(0, len(t)) plt.figure(1) plt.plot(t, x, t, y,linewidth=2.0) plt.xlabel('Time') plt.ylabel('Displacement') plt.gca().legend(('x(t)','y(t)')) plt.title('Displacement vs Time') plt.show()